perm filename T.MF[ALF,DEK] blob sn#586942 filedate 1981-05-20 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00006 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00003 00002	"Special font for the METAFONT manual"
C00005 00003	"Letters for METAFONT logo".
C00017 00004	"Letters for METAFONT logo, 9/10 size".
C00020 00005	"Letters for METAFONT logo, 8/10 size".
C00023 00006	end
C00027 ENDMK
CāŠ—;
"Special font for the METAFONT manual";
if mode=0: proofmode; drawdisplay; titletrace;
	pixels=18; blacker=0; overcorr=1;
else:	if mode=1: fntmode; tfxmode; no modtrace;
		pixels=3.6; blacker=.6;	overcorr=.4; % XGP, Versatec, Varian, etc.
	else: if mode=2: crsmode; tfxmode; titletrace; no modtrace;
			pixels=73.7973; blacker=4; overcorr=1;	% Alphatype
		else: if mode=3: fntmode; tfxmode; no modtrace; overcorr=.8;
				pixels=3.6*(1.1/1.3)*(384/200); blacker=1.6;	% Dover
			else: input mode;
			fi;
		fi;
	fi;
fi.

titletrace; % this prints out quoted strings when METAFONT encounters them
chardisplay; % this shows the characters as they are made
no penreset; % this avoids error messages
pnts=10; % change this if you want a different size font
w0=pixels+1; % hairline size is one point plus one raster unit
cpen; maxht top0 1.3.pnts.pixels. % maximum height above baseline in raster units
subroutine drag(index a,index b,index c,index d):
ya=xb=pnts.pixels;
xa=xc=yb=yd=1/2 ya;
yc=xd=0;
cpen;
charht pnts; charwd pnts; chardp 0; chardw round xb.
"Letters for METAFONT logo".
new w1; w1=.1*pnts*pixels; alf=.45;
rh=.6pnts; rs=.75ru; ro=rh/10; ru=1.1ro;
h=round rh*pixels; s=round rs.pixels; o=round ro.pixels.
subroutine mfchar(var c, var n):
charcode c; new r,rr; rr=n*ru+2rs; r=round rr.pixels;
charwd rr;
chardw r;
charht rh.
subroutine bowl(index i,index j):
x1+x5=x2+x4=2x3=xi+xj; x2=o/h[x1,x5]; x1=xi;
y1=y5=yi;y3=yj;y2=y4=2o/h[yj,yi]; 
cpen; w1 draw 1{0,y3-y1}..2{x3-x1,y3-y1}..3{x3-x1,0};
draw 5{0,y3-y5}..4{x3-x5,y3-y5}..3{x3-x5,0}.

maxht 696969;

call mfchar(`M,10); cpen;
x1+x5=x2+x4=2x3=r-1; x1=x2=rt1s;
y1=y5;y2=y4;bot1y1=0;top1y2=round (h+o/2); bot1y3=o;
w1 draw 1..2..2..3; draw 5..4..4..3.

end.


call mfchar(`E,8); cpen;
x1+x6=x2+x5+o=x3+x4=r-1; x1=x2=x3=rt1s;
y1=y6;y2=y5;y3=y4;bot1y1=0;top1y3=h;y2=alf[y1,y3];
w1 draw 6..1..1..3..3..4; draw 2..5.

call mfchar(`T,10); cpen;
x1+x3=2x2=2x4=r-1; x1=rt1s;
y1=y2=y3;top1y1=h;bot1y4=0;
w1 draw 1..3; draw 2..4.

call mfchar(`A,8); cpen;
x1+x4=x2+x3=r-1;x5=x3;x1=x2=rt1s;
y1=y4;y2=y3;bot1y1=0;top1y5=h;y2=alf[y1,y5];
call bowl(2,5); w1 draw 1..2..2..3..3..4.

call mfchar(`F,8); cpen;
x2+x5+o=x3+x4=r-1; x1=x2=x3=rt1s;
y2=y5;y3=y4;bot1y1=0;top1y3=h;y2=alf[y1,y3];
w1 draw 1..1..3..3..4; draw 2..5.

call mfchar(`O,9); cpen;
x1+x2=x1+x3=r-1; x1=rt1s;
bot1y3=0; top1y2=h; y1=alf[y3,y2];
call bowl(1,2); call bowl(1,3).

call mfchar(`N,8); cpen;
x1+x3=x1+x4=x2+x5=r-1; x1=x2=rt1s;
y1=y3=y4-o; bot1y1=0; y2=y5; top1y5=h;
w1 draw 1..2..2..4; draw 3..5.

lig `E: `T kern -.5rs;
lig `T: `A kern -rs;
lig `F: `O kern -rs.
"Letters for METAFONT logo, 9/10 size".
new rh,rs,ru,ro,h,s,o;
rh=.9*.6pnts; rs=.75ru; ro=rh/10; ru=1.1ro;
h=round rh*pixels; s=round rs.pixels; o=round ro.pixels.
subroutine mfchar(var c, var n):
charcode c; new r,rr; rr=n*ru+2rs; r=round rr.pixels;
charwd rr;
chardw r;
charht rh.
subroutine bowl(index i,index j):
x1+x5=x2+x4=2x3=xi+xj; x2=o/h[x1,x5]; x1=xi;
y1=y5=yi;y3=yj;y2=y4=2o/h[yj,yi]; 
cpen; w1 draw 1{0,y3-y1}..2{x3-x1,y3-y1}..3{x3-x1,0};
draw 5{0,y3-y5}..4{x3-x5,y3-y5}..3{x3-x5,0}.

call mfchar(`h,10); cpen;
x1+x5=x2+x4=2x3=r-1; x1=x2=rt1s;
y1=y5;y2=y4;bot1y1=0;top1y2=round h+o/2; bot1y3=o;
w1 draw 1..2..2..3; draw 5..4..4..3.

call mfchar(`i,8); cpen;
x1+x6=x2+x5+o=x3+x4=r-1; x1=x2=x3=rt1s;
y1=y6;y2=y5;y3=y4;bot1y1=0;top1y3=h;y2=alf[y1,y3];
w1 draw 6..1..1..3..3..4; draw 2..5.

call mfchar(`j,10); cpen;
x1+x3=2x2=2x4=r-1; x1=rt1s;
y1=y2=y3;top1y1=h;bot1y4=0;
w1 draw 1..3; draw 2..4.

call mfchar(`k,8); cpen;
x1+x4=x2+x3=r-1;x5=x3;x1=x2=rt1s;
y1=y4;y2=y3;bot1y1=0;top1y5=h;y2=alf[y1,y5];
call bowl(2,5); w1 draw 1..2..2..3..3..4.

call mfchar(`l,8); cpen;
x2+x5+o=x3+x4=r-1; x1=x2=x3=rt1s;
y2=y5;y3=y4;bot1y1=0;top1y3=h;y2=alf[y1,y3];
w1 draw 1..1..3..3..4; draw 2..5.

call mfchar(`m,9); cpen;
x1+x2=x1+x3=r-1; x1=rt1s;
bot1y3=0; top1y2=h; y1=alf[y3,y2];
call bowl(1,2); call bowl(1,3).

call mfchar(`n,8); cpen;
x1+x3=x1+x4=x2+x5=r-1; x1=x2=rt1s;
y1=y3=y4-o; bot1y1=0; y2=y5; top1y5=h;
w1 draw 1..2..2..4; draw 3..5.

lig `i: `j kern -.5rs;
lig `j: `k kern -rs;
lig `l: `m kern -rs.
"Letters for METAFONT logo, 8/10 size".
new rh,rs,ru,ro,h,s,o,w1; w1=.08*pnts*pixels;
rh=.8*.6pnts; rs=.75ru; ro=rh/10; ru=1.1ro;
h=round rh*pixels; s=round rs.pixels; o=round ro.pixels.
subroutine mfchar(var c, var n):
charcode c; new r,rr; rr=n*ru+2rs; r=round rr.pixels;
charwd rr;
chardw r;
charht rh.
subroutine bowl(index i,index j):
x1+x5=x2+x4=2x3=xi+xj; x2=o/h[x1,x5]; x1=xi;
y1=y5=yi;y3=yj;y2=y4=2o/h[yj,yi]; 
cpen; w1 draw 1{0,y3-y1}..2{x3-x1,y3-y1}..3{x3-x1,0};
draw 5{0,y3-y5}..4{x3-x5,y3-y5}..3{x3-x5,0}.

call mfchar(`o,10); cpen;
x1+x5=x2+x4=2x3=r-1; x1=x2=rt1s;
y1=y5;y2=y4;bot1y1=0;top1y2=round h+o/2; bot1y3=o;
w1 draw 1..2..2..3; draw 5..4..4..3.

call mfchar(`p,8); cpen;
x1+x6=x2+x5+o=x3+x4=r-1; x1=x2=x3=rt1s;
y1=y6;y2=y5;y3=y4;bot1y1=0;top1y3=h;y2=alf[y1,y3];
w1 draw 6..1..1..3..3..4; draw 2..5.

call mfchar(`q,10); cpen;
x1+x3=2x2=2x4=r-1; x1=rt1s;
y1=y2=y3;top1y1=h;bot1y4=0;
w1 draw 1..3; draw 2..4.

call mfchar(`r,8); cpen;
x1+x4=x2+x3=r-1;x5=x3;x1=x2=rt1s;
y1=y4;y2=y3;bot1y1=0;top1y5=h;y2=alf[y1,y5];
call bowl(2,5); w1 draw 1..2..2..3..3..4.

call mfchar(`s,8); cpen;
x2+x5+o=x3+x4=r-1; x1=x2=x3=rt1s;
y2=y5;y3=y4;bot1y1=0;top1y3=h;y2=alf[y1,y3];
w1 draw 1..1..3..3..4; draw 2..5.

call mfchar(`t,9); cpen;
x1+x2=x1+x3=r-1; x1=rt1s;
bot1y3=0; top1y2=h; y1=alf[y3,y2];
call bowl(1,2); call bowl(1,3).

call mfchar(`u,8); cpen;
x1+x3=x1+x4=x2+x5=r-1; x1=x2=rt1s;
y1=y3=y4-o; bot1y1=0; y2=y5; top1y5=h;
w1 draw 1..2..2..4; draw 3..5.

lig `p: `q kern -.5rs;
lig `q: `r kern -rs;
lig `s: `t kern -rs.
end